
// 客户代码验证和提交处理
class CustomerSurvey {
    constructor() {
        this.init();
        // 初始化防抖定时器
        this.debounceTimer = null;
    }

    init() {
        // 获取jQuery元素
        this.$customerCodeInput = $('.customer-code');
        this.$submitBtn = $('.submit-btn');

        // 绑定事件
        this.bindEvents();
    }

    // 防抖函数
    debounce(fn, delay = 300) {
        clearTimeout(this.debounceTimer);
        this.debounceTimer = setTimeout(() => {
            fn.call(this);
        }, delay);
    }

    bindEvents() {
        // 提交按钮点击事件
        this.$submitBtn.on('click', () => {
            this.handleSubmit();
        });

        // 输入框回车事件
        this.$customerCodeInput.on('keypress', (e) => {
            if (e.key === 'Enter') {
                this.handleSubmit();
            }
        });

        // 输入框输入事件 - 添加防抖
        this.$customerCodeInput.on('input', () => {
            this.debounce(() => {
                this.validateInput();
            });
        });
    }

    // 验证输入
    validateInput() {
        const customerCode = this.$customerCodeInput.val().trim();

        // 移除之前的错误提示
        this.removeErrorTip();

        // 验证客户代码格式（示例：假设客户代码为6位数字）
        if (customerCode && !/^\d{6}$/.test(customerCode)) {
            this.showErrorTip('请输入正确的6位数字客户代码');
            return false;
        }

        return true;
    }

    // 显示错误提示
    showErrorTip(message) {
        Message.error(message);
    }

    // 移除错误提示
    removeErrorTip() {
        $('.error-tip').remove();
    }

    // 处理提交
    handleSubmit() {
        const customerCode = this.$customerCodeInput.val().trim();

        // 验证是否为空
        if (!customerCode) {
            Message.warning('请输入客户代码');
            return;
        }

        // 验证输入格式
        if (!this.validateInput()) {
            return;
        }

        // 显示加载状态
        this.$submitBtn.prop('disabled', true)
            .text('正在验证...');

        // 发送请求验证客户代码
        this.verifyCustomerCode(customerCode)
            .then(response => {
                if (response.success) {
                    Message.success('验证成功');
                    setTimeout(() => {
                        window.location.href = `/pages/survey/detail/index.html?code=${customerCode}`;
                    }, 1000);
                } else {
                    Message.error(response.message || '客户代码验证失败');
                }
            })
            .catch(error => {
                Message.error('网络错误，请稍后重试');
                console.error('验证失败:', error);
            })
            .finally(() => {
                // 恢复按钮状态
                this.$submitBtn.prop('disabled', false)
                    .text('点击进入');
            });
    }

    // 验证客户代码
    async verifyCustomerCode(code) {
        try {
            return await request.post('/verify-customer', { code });
        } catch (error) {
            throw new Error('验证请求失败');
        }
    }
}

// 页面加载完成后初始化
$(document).ready(() => {
    new CustomerSurvey();
});